<template>
  <view>
    <camera id="camera" :style="cameraStyle"></camera>
    <button @click="takePhoto">拍照</button>
  </view>
</template>

<script>
export default {
  data() {
    return {
      cameraContext: null, // 相机上下文
      cameraStyle: 'width: 360px; height: 500px;' // 相机显示的样式
    };
  },
  mounted() {
    // 创建相机上下文
    this.cameraContext = uni.createCameraContext();
  },
  methods: {
    takePhoto() {
      // 调用相机的 takePhoto 方法进行拍照
      this.cameraContext.takePhoto({
        quality: 'normal', // 图片质量，可选值为 high, normal, low
        success: res => {
          // 拍照成功的回调函数
          console.log('拍照成功：', res.tempImagePath);

          // 保存照片到相册
          uni.saveImageToPhotosAlbum({
            filePath: res.tempImagePath,
            success: () => {
              console.log('保存成功');
            },
            fail: err => {
              console.log('保存失败：', err);
            }
          });
        },
        fail: err => {
          // 拍照失败的回调函数
          console.log('拍照失败：', err);
        }
      });
    }
  }
};
</script>